﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Rebides
{
    public partial class frmRebides : Form
    {
        Main main = new Main();

        public frmRebides()
        {
            InitializeComponent();        
        }

        private void criarBDToolStripMenuItem_Click(object sender, EventArgs e)
        {
            lstLog.Items.Clear();

            try
            {
                main.create_db_tables();
                lstLog.Items.Add("BD criada com sucesso!");
            }
            catch (Exception error)
            {
                lstLog.Items.Add("---------ERRO----------");
                MessageBox.Show("Ocorreu um erro a criar a BD! \n" + "Erro: " + error.Message);
            }
            
        }

        private void recolherDadosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            lstLog.Items.Clear();

            if (tscbAno.Text != "")
            {
                int year = 0;

                if (tscbAno.Text == "Todos")
                {
                    for (int n = 0; n <= 10; n++)
                    {
                        year = n;

                        try
                        {
                            lstLog.Items.Add("A processar os dados do ano " + year);
                            main.get_rebides_Data(year);
                            lstLog.Items.Add("Conluido o processamento do ano " + year);
                        }
                        catch (Exception error)
                        {
                            lstLog.Items.Add("---------ERRO----------");
                            MessageBox.Show("Ocorreu um erro a processar os dados! \n" + "Erro: " + error.Message);
                        }
                    }
                }
                else
                {
                    year = int.Parse(tscbAno.Text.Substring(2, 2));

                    try
                    {
                        lstLog.Items.Add("A processar os dados do ano " + year);
                        main.get_rebides_Data(year);
                        lstLog.Items.Add("Conluido o processamento do ano " + year);
                    }
                    catch (Exception error)
                    {
                        lstLog.Items.Add("---------ERRO----------");
                        MessageBox.Show("Ocorreu um erro a processar os dados! \n" + "Erro: " + error.Message);
                    }
                }
            }
            else
            {
                MessageBox.Show("Por favor escolha um dos anos disponíveis acima!");
            }
        }

        private void docentesPorCatAnoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            lstLog.Items.Clear();

            try
            {
                lstLog.Items.Add("A processar as estatistica: Docentes por Categoria/Estabelecimento/Ano");
                main.stat_doc_cat_estab_ano();
                lstLog.Items.Add("Estatistica processada com sucesso!");
                lstLog.Items.Add("Foi criado o ficheiro stat1.txt com os resultado.");
            }
            catch (Exception error)
            {
                lstLog.Items.Add("---------ERRO----------");
                MessageBox.Show("Ocorreu um erro a processar a estatistica! \n" + "Erro: " + error.Message);
            }
        }

        private void docentesPorTipoGrauEstaAnoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            lstLog.Items.Clear();

            try
            {
                lstLog.Items.Add("A processar as estatistica: Docentes por Tipo Grau/Estabelecimento/Ano");
                main.stat_tipo_grau_estab_ano();
                lstLog.Items.Add("Estatistica processada com sucesso!");
                lstLog.Items.Add("Foi criado o ficheiro stat2.txt com os resultado.");
            }
            catch (Exception error)
            {
                lstLog.Items.Add("---------ERRO----------");
                MessageBox.Show("Ocorreu um erro a processar a estatistica! \n" + "Erro: " + error.Message);
            }
        }

        private void sairToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}
